repos:
  - repo: https://github.com/pycqa/isort
    rev: 5.12.0
    hooks:
      - id: isort
        args: ["--profile", "black"]
  - repo: https://github.com/psf/black
    rev: 22.10.0
    hooks:
      - id: black
        name: "Format code (black)"
  - repo: https://github.com/pycqa/flake8
    rev: 6.0.0
    hooks:
      - id: flake8
        args: [
          "--max-line-length=88",
          "--extend-ignore=E203",
          "--kwargs-max-positional-arguments=6"]
        additional_dependencies: [
          'flake8-bugbear==23.2.13',
          'flake8-builtins==2.1.0',
          'flake8-comprehensions==3.10.1',
          'flake8-class-attributes-order==0.1.3',
          'pep8-naming==0.13.3',
          'flake8-force-keyword-arguments==1.0.4'
        ]
  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v0.991
    hooks:
      - id: mypy
  - repo: https://github.com/kynan/nbstripout
    rev: 0.6.1
    hooks:
      - id: nbstripout
  - repo: https://github.com/codespell-project/codespell
    rev: v2.2.2
    hooks:
      - id: codespell
        name: codespell
        description: Checks for common misspellings in text files.
        entry: codespell --skip="*.js,*.html,*.css, *.svg"
        language: python
        types: [text]
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.2.0
    hooks:
      - id: check-merge-conflict
      - id: end-of-file-fixer
      - id: requirements-txt-fixer
      - id: trailing-whitespace
  - repo: https://github.com/asottile/pyupgrade
    rev: v3.3.1
    hooks:
      - id: pyupgrade
        args: [--py38-plus]
